ASP.NET Core এ API Controller তৈরি করা একটি গুরুত্বপূর্ণ অংশ, কারণ এটি HTTP রিকোয়েস্ট গ্রহণ এবং প্রক্রিয়া করে, এবং সঠিক HTTP রেসপন্স প্রদান করে। API Controller সাধারণত Web API এপ্লিকেশন তৈরি করতে ব্যবহৃত হয়, যেখানে ক্লায়েন্ট সাইডে JSON বা XML ফরম্যাটে ডাটা পাঠানো হয়।
ASP.NET Core-এ API Controller তৈরি করতে, সাধারণত ControllerBase ক্লাস ইনহেরিট করা হয়, যা API Controller এর জন্য প্রয়োজনীয় মেথড এবং প্রপার্টি সরবরাহ করে।
API Controller তৈরি করার ধাপ
কন্ট্রোলার ক্লাস তৈরি
ASP.NET Core API Controller তৈরি করতে প্রথমে একটি ক্লাস তৈরি করুন যাControllerBaseক্লাস ইনহেরিট করবে এবং[Route]অ্যাট্রিবিউট দিয়ে URL রাউটিং কনফিগার করুন।উদাহরণস্বরূপ, আমরা
ProductsControllerনামে একটি API Controller তৈরি করতে পারি, যাapi/productsরাউটের জন্য রিকোয়েস্ট গ্রহণ করবে।[ApiController] [Route("api/[controller]")] public class ProductsController : ControllerBase { private static List<Product> _products = new List<Product> { new Product { Id = 1, Name = "Product1", Price = 100 }, new Product { Id = 2, Name = "Product2", Price = 150 } }; // GET: api/products [HttpGet] public IActionResult GetProducts() { return Ok(_products); // JSON রেসপন্স } // GET: api/products/1 [HttpGet("{id}")] public IActionResult GetProduct(int id) { var product = _products.FirstOrDefault(p => p.Id == id); if (product == null) { return NotFound(); // 404 রেসপন্স } return Ok(product); // JSON রেসপন্স } }- API রাউটিং কনফিগারেশন
Routeঅ্যাট্রিবিউট ব্যবহার করে রাউটিং কনফিগার করুন।api/[controller]সেন্টেন্সটি স্বয়ংক্রিয়ভাবে কন্ট্রোলারের নাম (ProductsController) থেকে রাউটের নাম ডিডাক্ট করবে, অর্থাৎ, কন্ট্রোলারের নামProductsControllerথাকলে রাউট হবেapi/products। - একশন মেথড যুক্ত করা
কন্ট্রোলারে বিভিন্ন HTTP একশন মেথড তৈরি করা হয় যেমনGET,POST,PUT,DELETE। প্রত্যেকটি একশন HTTP রিকোয়েস্ট অনুযায়ী রেসপন্স প্রদান করবে।GETমেথড ডেটা রিটার্ন করার জন্য।POSTমেথড নতুন ডেটা সেভ করার জন্য।PUTমেথড ডেটা আপডেট করার জন্য।DELETEমেথড ডেটা মুছে ফেলার জন্য।
API Controller-এ বিভিন্ন HTTP মেথড ব্যবহার
GET RequestGET রিকোয়েস্টের মাধ্যমে ডেটা ফেচ করা হয়। নিচের উদাহরণে, আমরা GetProducts এবং GetProduct মেথড তৈরি করেছি যা বিভিন্ন প্রোডাক্টের তালিকা এবং নির্দিষ্ট একটি প্রোডাক্টের ডেটা রিটার্ন করবে।
[HttpGet]
public IActionResult GetProducts()
{
return Ok(_products); // সকল প্রোডাক্টের JSON রেসপন্স
}
[HttpGet("{id}")]
public IActionResult GetProduct(int id)
{
var product = _products.FirstOrDefault(p => p.Id == id);
if (product == null)
{
return NotFound(); // যদি প্রোডাক্ট না পাওয়া যায়
}
return Ok(product); // নির্দিষ্ট প্রোডাক্টের JSON রেসপন্স
}
POST RequestPOST রিকোয়েস্টের মাধ্যমে নতুন ডেটা তৈরি করা হয়। নিচের উদাহরণে, নতুন প্রোডাক্ট তৈরি করা হচ্ছে।
[HttpPost]
public IActionResult CreateProduct(Product product)
{
_products.Add(product); // প্রোডাক্ট লিস্টে নতুন প্রোডাক্ট যোগ করা
return CreatedAtAction(nameof(GetProduct), new { id = product.Id }, product); // 201 রেসপন্স
}
PUT RequestPUT রিকোয়েস্টের মাধ্যমে ডেটা আপডেট করা হয়। নিচের উদাহরণে, একটি প্রোডাক্টের তথ্য আপডেট করা হচ্ছে।
[HttpPut("{id}")]
public IActionResult UpdateProduct(int id, Product product)
{
var existingProduct = _products.FirstOrDefault(p => p.Id == id);
if (existingProduct == null)
{
return NotFound(); // যদি প্রোডাক্ট না পাওয়া যায়
}
existingProduct.Name = product.Name; // প্রোডাক্ট আপডেট করা
existingProduct.Price = product.Price;
return NoContent(); // 204 রেসপন্স
}
DELETE RequestDELETE রিকোয়েস্টের মাধ্যমে ডেটা মুছে ফেলা হয়। নিচের উদাহরণে, একটি প্রোডাক্ট মুছে ফেলা হচ্ছে।
[HttpDelete("{id}")]
public IActionResult DeleteProduct(int id)
{
var product = _products.FirstOrDefault(p => p.Id == id);
if (product == null)
{
return NotFound(); // যদি প্রোডাক্ট না পাওয়া যায়
}
_products.Remove(product); // প্রোডাক্ট মুছে ফেলা
return NoContent(); // 204 রেসপন্স
}
Action Result Types
ASP.Net Core এ বিভিন্ন ধরনের রেসপন্স প্রদান করার জন্য ActionResult বা IActionResult রিটার্ন টাইপ ব্যবহার করা হয়। এর মাধ্যমে বিভিন্ন HTTP স্ট্যাটাস কোড রিটার্ন করা যায়, যেমন:
- Ok() – HTTP 200 (Success)
- Created() – HTTP 201 (Resource Created)
- NoContent() – HTTP 204 (No Content)
- BadRequest() – HTTP 400 (Bad Request)
- NotFound() – HTTP 404 (Not Found)
- Unauthorized() – HTTP 401 (Unauthorized)
এগুলি আপনাকে API কন্ট্রোলারে ক্লায়েন্টকে সঠিক HTTP স্ট্যাটাস কোড সহ রেসপন্স প্রদান করতে সহায়তা করে।
সারাংশ
ASP.Net Core API Controller তৈরি করা অত্যন্ত সহজ। ControllerBase ক্লাস ইনহেরিট করার মাধ্যমে API কন্ট্রোলার তৈরি করা যায় এবং HTTP রিকোয়েস্ট অনুযায়ী JSON রেসপন্স প্রদান করা যায়। ASP.Net Core API কন্ট্রোলারে GET, POST, PUT, DELETE রিকোয়েস্টের মাধ্যমে ডেটা ফেচ, সৃষ্টি, আপডেট এবং ডিলিট করা যায়। ActionResult রিটার্ন টাইপ ব্যবহারের মাধ্যমে সঠিক HTTP স্ট্যাটাস কোড সহ রেসপন্স প্রদান করা সম্ভব।
Read more